Ext.namespace('iOS.App');

/*
 * App有两种形式，一种是继承此基类，另一种是直接在iframe中打开
 */
Ext.define('BaseApp', {
    extend   : 'BaseView',
    
    statics  : {
        TopBar            : 'top-bar',
        GlobalContentName : 'content' 
    },

    /*
     * 默认全局的背景色，这包括整个显示区域的背景颜色
     */
    GlobalBg   : 'transparent', 
    /*
     * 背景颜色，默认为白
     */
    _bgColor   : 'white',
    
    /*
     * topBar的颜色，可以在配置文件中设置，也可以在类中设置，
     * 默认为半透明
     * 因Ext类的statics不能继承，所以，若要设置Topbar的颜色，
     * 需在子类中的statics声明Topbar的View名称
     */
    _topBarColor: 'normal',

    /*
     * 是否为全屏显示，默认为false，即高度为460px
     */
    _fullScreen: false,

    constructor: function(cfg){
        var sttc       = this.self,
            AppCon     = iOS.ViewManager.getView(sttc.AppContent),
            curIdx     = iOS.Layout._curIdx,
            htmlData   = 
            '<div id="ios-' + curIdx + '" class="' + sttc.BaseCls + '">' + 
            '</div>';
        this._selector = '#ios-' + curIdx;
        AppCon.getElCache().html(htmlData);
        iOS.Layout._curIdx++;
        iOS.BaseDom._curIdx++;
        this.callParent([cfg]);
    },

    _initDom : function(){
        this.callParent();
        var that   = this,
            sttc   = this.self,
            height = this._fullScreen ? 480 : 460,
            AppCon = iOS.ViewManager.getView(this.self.AppContent).getElCache(),
            AppCfg = {
                height     : height + 'px',
                background : this._bgColor
        };
        AppCon.css(AppCfg);
        if(this._topBarColor == 'black'){
            iOS.ViewManager.notify(that.self.TopBar, 'bgBlack');    
        } else if(this._topBarColor == 'white'){
            iOS.ViewManager.notify(that.self.TopBar, 'bgWhite');
        } else if(this._topBarColor == 'gray'){
            iOS.ViewManager.notify(that.self.TopBar, 'bgGray');
        }
        if(this._cardViewCfg){
            iOS.Layout._initDom(this._cardViewCfg, this._selector);
            iOS.BaseDom.init(this._cardViewCfg.subViewCfg);
        }
        
    }
});

iOS.BaseApp = BaseApp;